﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using QuanLyBanHang.QuerySQL;
using DevComponents.DotNetBar;

namespace QuanLyBanHang
{
    public partial class frDondathang : Office2007Form
    {
        ClassDondathang ddh = new ClassDondathang();
        public String quyen;
        public String nhanvien;
        private double sl, gia, tong, tongtien;
        private bool ktra, ktra1;
        private int dong;

        public frDondathang()
        {
            InitializeComponent();
        }

        private void frDondathang_Load(object sender, EventArgs e)
        {
            this.AcceptButton = btnthemHD;
            dtgv_DH.DataSource = ddh.ShowDH();
            btnLHD.Checked = true;
            btn_CTHD.Enabled = false;
        }

        private void btnthemHD_Click(object sender, EventArgs e)
        {
            if (txtmadh.TextLength == 0)
            {
                lbmakh.Text = "Nhập mã hóa đơn...";
                txtmadh.Focus();
            }
            else if (txtmadh.TextLength > 20)
            {
                lbmakh.Text = "Mã hóa đơn không quá 20 ký tự...";
                txtmadh.Focus();
            }
            else if (cbomakh.Text.ToString().Equals(""))
            {
                lbmakh.Text = "Nhập mã khách hàng...";
                cbomakh.Focus();
            }
            else if (dtngaydat.Text.Equals(""))
            {
                lbmakh.Text = "Nhập Ngày đặt hàng...";
                dtngaydat.Focus();
            }
            else if (dtngaygiao.Text.Equals(""))
            {
                lbmakh.Text = "Nhập Ngày giao hàng...";
                dtngaygiao.Focus();
            }
            else {
                if (ktra)
                {
                    MessageBox.Show("Mã hóa đơn đã tồn tại !!!");
                }
                else
                {
                    lbmakh.Text = "";
                    ddh.ThemDH(txtmadh.Text,cbomakh.Text,nhanvien,dtngaydat.Text,dtngaygiao.Text);
                    dtgv_DH.DataSource = ddh.ShowMADH(txtmadh.Text, cbomakh.Text);
                    btn_CTHD.Enabled = true;
                    btn_CTHD.Checked = true;
                    btnLHD.Enabled = false;
                    btnItemTK.Enabled = false;
                    cbomasp.Focus();
                    cbomasp.Text = "";
                    this.AcceptButton = btnluu;
                } 
            }
        }
        private void txttongtien_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }

        private void cbomakh_Click(object sender, EventArgs e)
        {
            cbomakh.DataSource = ddh.ShowMAKH();
            cbomakh.ValueMember = "MAKH";
            cbomakh.DisplayMember = "MAKH";
        }

        private void txtmahd_TextChanged(object sender, EventArgs e)
        {
            ktra = false;
            foreach (DataRow row in ddh.ShowDH().Rows)
            {
                if (row["MADH"].ToString().Equals(txtmadh.Text))
                {
                    ktra = true;
                }
            }
        }

        private void cbomasp_Click(object sender, EventArgs e)
        {
            cbomasp.DataSource = ddh.ShowMASP();
            cbomasp.ValueMember = "MASP";
            cbomasp.DisplayMember = "MASP";
        }

        private void cbomasp_TextChanged(object sender, EventArgs e)
        {
            ktra1 = false;
            foreach (DataRow row in ddh.ShowCTPDH().Rows)
            {
                if (row["MADH"].ToString().Equals(txtmadh.Text) && row["MASP"].ToString().Equals(cbomasp.Text))
                {
                    ktra1 = true;
                }
            }
            if (cbomasp.Text.ToString().Equals(""))
            {
                txttensp.Clear();
                txtgia.Clear();
            }
            else
            {
                foreach (DataRow row in ddh.Show_CTSP(cbomasp.Text).Rows)
                {
                    txttensp.Text = row["TENSP"].ToString();
                    txtgia.Text = row["GIABAN"].ToString();
                }
            }
        }

        private void btnluu_Click(object sender, EventArgs e)
        {
            if (cbomasp.Text.ToString().Equals(""))
            {
                lbthongbao.Text = "Nhập mã sản phẩm ...";
                cbomasp.Focus();
            }
            else if (txtslg.TextLength == 0)
            {
                lbthongbao.Text = "Nhập số lượng ...";
                txtslg.Focus();
            }
            else
            {
                if (ktra1)
                {
                    MessageBox.Show("Sản phẩm đã có trong hóa đơn hãy tạo hóa đơn mới hoặc chọn sản phẩm khác !!");
                }
                else
                {
                    lbthongbao.Text = "";
                    ddh.Them_CTPDH(txtmadh.Text, cbomasp.Text, txttensp.Text, Convert.ToDouble(txtgia.Text), Convert.ToDouble(txtslg.Text), (Convert.ToDouble(txtthanhtien.Text)));
                    ddh.SuaDH(txtmadh.Text, (tongtien + Convert.ToDouble(txtthanhtien.Text)));
                    dtgv_DH.DataSource = ddh.ShowMADH(txtmadh.Text, cbomakh.Text);
                    cbomasp.Text = "";
                    txtslg.Clear();
                }
            }
        }

        private void txtslg_TextChanged(object sender, EventArgs e)
        {
            if (txtslg.TextLength != 0 && txtgia.TextLength != 0)
            {
                sl = Convert.ToDouble(txtslg.Text);
                gia = Convert.ToDouble(txtgia.Text);
                tong = sl * gia;
                txtthanhtien.Text = tong.ToString();
            }
            else txtthanhtien.Clear();
        }

        private void btnhuy_Click(object sender, EventArgs e)
        {
            frDondathang_Load(sender, e);
            btnLHD.Enabled = true;
            btnLHD.Checked = true;
            btnItemTK.Enabled = true;
            btn_CTHD.Enabled = false;
            txtmadh.Clear();
            cbomakh.Text = "";
            dtngaydat.Text = "";
            dtngaygiao.Text = "";
            cbomakh.Text = "";
            this.AcceptButton = btnthemHD;
        }

        private void dtgv_DH_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            try
            {
                for (int i = 0; i < dtgv_DH.RowCount; i++)
                {
                    dtgv_DH.Rows[i].Cells["cl_stt"].Value = i + 1;
                }
            }
            catch { }
        }

        private void dtgv_DH_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            dong = e.RowIndex;
            if (dtgv_DH.Rows[dong].Cells["cl_tien"].Value.ToString().Equals(""))
            {
                tongtien = 0;
            }
            else
            {
                tongtien = Convert.ToDouble(dtgv_DH.Rows[dong].Cells["cl_tien"].Value.ToString());
            }
        }

        private void txttkmahd_TextChanged(object sender, EventArgs e)
        {
            dtgv_DH.DataSource = ddh.TKDH(0,txttkmahd.Text);
        }

        private void txttkkh_TextChanged(object sender, EventArgs e)
        {
            dtgv_DH.DataSource = ddh.TKDH(1,txttkmahd.Text, txttkkh.Text);
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (dtgv_DH.Rows[dong].Cells["cl_tien"].Value.ToString().Equals(""))
            {
                DialogResult kq = MessageBox.Show("Bạn có chắc muốn xóa Hóa đơn " + dtgv_DH.Rows[dong].Cells["cl_mahd"].Value.ToString() + "  ? ", "Thông báo", MessageBoxButtons.YesNo);
                if (kq == DialogResult.Yes)
                {
                    ddh.XoaDH(dtgv_DH.Rows[dong].Cells["cl_mahd"].Value.ToString());
                    dtgv_DH.DataSource = ddh.ShowDH();
                }
            }
            else if (quyen == "quantri" || quyen == "quanly")
            {
                DialogResult kq = MessageBox.Show("Bạn có chắc muốn xóa Hóa đơn " + dtgv_DH.Rows[1].Cells["cl_mahd"].Value.ToString() + "  ? ", "Thông báo", MessageBoxButtons.YesNo);
                if (kq == DialogResult.Yes)
                {
                    ddh.XoaCTDDH(dtgv_DH.Rows[dong].Cells["cl_mahd"].Value.ToString());
                    ddh.XoaDH(dtgv_DH.Rows[dong].Cells["cl_mahd"].Value.ToString());
                    dtgv_DH.DataSource = ddh.ShowDH();
                }
            }
            else
            {
                MessageBox.Show("Không được phép xóa !!!");
            }
        }

        private void btnhuy2_Click(object sender, EventArgs e)
        {
            txttkmahd.Clear();
            txttkkh.Clear();
        }

        private void dtngaydat_TextChanged(object sender, EventArgs e)
        {
            //txtmadh.Text = dtngaydat.Text;
        }

        private void btnhuy1_Click(object sender, EventArgs e)
        {
            txtmadh.Clear();
            cbomakh.Text = "";
            dtngaydat.Text = "";
            dtngaygiao.Text = "";
        }
    }
}
